import java.sql.SQLException;
import java.util.List;

public class BillService {
    // 定义一个BillDAO对象
    private BillDAO billDAO = new BillDAO();

    // 记录收入
    public void recordIncome(String date, double amount, String category, String note) throws SQLException {
        // 如果金额小于等于0，抛出异常
        if (amount <= 0)
            throw new IllegalArgumentException("Amount must be positive");
        // 调用BillDAO对象的addBill方法，记录收入
        billDAO.addBill(date, amount, category, "income", note);
    }

    // 记录支出
    public void recordExpense(String date, double amount, String category, String note) throws SQLException {
        // 如果金额小于等于0，抛出异常
        if (amount <= 0)
            throw new IllegalArgumentException("Amount must be positive");
        // 调用BillDAO对象的addBill方法，记录支出
        billDAO.addBill(date, amount, category, "expense", note);
    }

    // 查看所有账单
    public List<Bill> getAllBills() throws SQLException {
        // 调用BillDAO对象的getAllBills方法，返回所有账单
        return billDAO.getAllBills();
    }

    // 查询账单
    public List<Bill> queryBills(String date) throws SQLException {
        // 调用BillDAO对象的queryBills方法，根据日期查询账单
        return billDAO.queryBills(date);
    }

    //设置月度预算
    public void setMonthlyBudget(double budget) throws SQLException {
        billDAO.setMonthlyBudget(budget);
    }

    //获取月度统计报告
    public String getMonthlyReport() throws SQLException {
        return billDAO.getMonthlyReport();
    }

}